"""
题目：输入某年某月某日，判断这一天是这一年的第几天？

程序分析：以3月5日为例，应该先把前两个月的加起来，然后再加上5天即本年的第几天，特殊情况，闰年且输入月份大于2时需考虑多加一天：
"""
import sys

year = int(input("请输入年:"))
month = int(input("请输入月:"))
day = int(input("请输入日:"))

# 每个月对应前n月的天数 例如 下标0是1月对应的前一个月值为0天
month_days = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]


def count_year_day_func(year: int, month: int, day: int) -> int:
    """
    计算输入的年月日是当年的第几天
    :param year:年
    :param month:月
    :param day:日
    :return: sum
    """
    if 0 < month <= 12 and year > 0 and 0 < day < 31:
        sum = month_days[month - 1]
    else:
        print("输入的日期错误。")
        sys.exit(500)
    # 加上日 时间
    sum += day
    # 判断是否为闰年
    if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
        if month > 2:
            sum += 1
    return sum


try:
    sum: int = count_year_day_func(year, month, day)
except Exception as e:
    print("日期计算错误：" + e)
print(f"it is {sum}th day")
